package com 
{
	import flash.display.Sprite;
	/**
	 * ...
	 * @author anzhilin
	 */
	public class GridLayer extends Sprite
	{
		
		public function GridLayer() 
		{
			
		}
		/**
		 * 绘制网格
		 * @param	row 行数
		 * @param	col 列数
		 * @param	w tile宽
		 * @param	h tile高
		 */
		public function drawGrid(row:int,col:int,w:int,h:int):void
		{
			this.graphics.lineStyle(0);
			for(var i:int=0;i<row+col;i++)
			{
				//这里面的判断应该是可以精简的，不过为了简单易懂，就没有精简了
				
				if(i*w+w/2>col*w)	//moveTo的x坐标大于地图宽度的时候，将x限制在最大值(地图宽)，同时计算moveTo的y坐标，即：(i-col)*h+h/2
				{
					this.graphics.moveTo(col*w,(i-col)*h+h/2);
				}
				else
				{
					this.graphics.moveTo(i*w+w/2,0);
				}
				
				
				if(i*h+h/2>row*h)//lineTo的y坐标大于地图高度的时候,将y限制在最大值(地图高)，同时计算lineTo的x坐标
				{
					this.graphics.lineTo((i-row)*w+w/2,row*h);
				}
				else
				{
					this.graphics.lineTo(0,i*h+h/2);
				}
				
				
				if((col-i)*w-w/2<0)	//moveTo的x坐标小于0的时候，moveTo的x坐标=0，同时计算moveTo的y坐标
				{
					this.graphics.moveTo(0,(i-col)*h+h/2);
				}
				else
				{
					this.graphics.moveTo((col-i)*w-w/2,0);
				}
				
				
				if(i*h+h/2>row*h)	//lineTo的y坐标大于地图高度的时候,将y限制在最大值(地图高)，同时计算lineTo的x坐标
				{
					this.graphics.lineTo((col-(i-row)-0.5)*w,row*h);
				}
				else
				{
					this.graphics.lineTo(col*w,i*h+h/2);
				}
			}
		}
		
	}

}